Verilog: module vl_1_bit_adder(C0, A0, B0, C1, S0); input C0, A0, B0; output C1, S0; wire e0, e1, e2, e3, e4, e5, e6, e7, e8, e9; nand u0(e0, C0, A0, B0); not u1(A0, e1); not u2(B0, e2); not u3(C0, e3); nand u4(e4, C0, A0); nand u5(e5, B0, C0); nand u6(e6, A0, B0); nand u7(e7, C0, e1, e2); nand u8(e8, A0, e2, e3); nand u9(e9, B0, e1, e3); nand u10(C1, e0, e4, e5, e6); nand u11(S0, e0, e7, e8, e9); endmodule VHDL: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; -- =========================================== ENTITY 1_bit_adder IS PORT ( C0 : IN BIT; A0 : IN BIT; B0 : IN BIT; C1 : OUT BIT; S0 : OUT BIT ); END 1_bit_adder; -- =========================================== ARCHITECTURE gate_level OF 1_bit_adder IS COMPONENT not1 PORT (a1: IN BIT; z: OUT BIT); END COMPONENT; -- Intermediate nets SIGNAL e0, e1, e2, e3, e4, e5, e6, e7, e8, e9 : BIT; BEGIN U0 : nand3 PORT MAP (C0, A0, B0, e0); U1 : not1 PORT MAP (A0, e1); U2 : not1 PORT MAP (B0, e2); U3 : not1 PORT MAP (C0, e3); U4 : nand2 PORT MAP (C0, A0, e4); U5 : nand2 PORT MAP (B0, C0, e5); U6 : nand2 PORT MAP (A0, B0, e6); U7 : nand3 PORT MAP (C0, e1, e2, e7); U8 : nand3 PORT MAP (A0, e2, e3, e8); U9 : nand3 PORT MAP (B0, e1, e3, e9); U10 : nand4 PORT MAP (e0, e4, e5, e6, C1); U11 : nand4 PORT MAP (e0, e7, e8, e9, S0); END gate_level;